<?php
function dcalendar($name, $value = '', $sep = '-') {
	global $destoon_calendar_id;
	$calendar = '';
	$id = str_replace(array('[', ']'), array('', ''), $name);
	if(!$destoon_calendar_id) {
		$destoon_calendar_id = 1;
		$calendar .= '<script type="text/javascript" src="/common/js/calendar.js"></script>';
	}
	$calendar .= '<input class="" type="text" name="'.$name.'" id="'.$id.'" value="'.$value.'" size="10" onfocus="ca_show(\''.$id.'\', this, \''.$sep.'\');" readonly ondblclick="this.value=\'\';"/> <img src="/common/images/calendar/calendar.gif" align="absmiddle" onclick="ca_show(\''.$id.'\', this, \''.$sep.'\');" style="cursor:pointer;"/>';
	$calendar .= " [<span onclick=\"ca_clear('{$id}');\">置空</span>]";
	return $calendar;
}
/**
 * sys_file_cache 数据缓存及存取程序
 * 
 * @param dir       缓存目录
 * @param method    数据存取模式，取值"w"为存入数据，取值"r"读取数据，取值"c"为删除数据
 * @param name    标识数据的名称
 * @param value    存入的值，在读取数据和删除数据的模式下均为NULL
 * @param life_time    变量的生存时间，默认为永久保存
 */
function sys_file_cache($dir, $method, $name, $value = NULL, $life_time = -1){
	// 准备缓存目录和缓存文件名称，缓存文件名称为$name的MD5值，文件后缀为php
	$dir=trim($dir,'/').'/'.substr(md5($name),0,2).'/';
	if(!is_dir($dir))mkdir($dir,0777,true);
	$sfile = $dir.md5($name).".php";
	// 对$method进行判断，分别进行读写删的操作
	if('w' == $method){ 
		// 写数据，在$life_time为-1的时候，将增大$life_time值以令$life_time不过期
		$life_time = ( -1 == $life_time ) ? '300000000' : $life_time;
		// 准备存入缓存文件的数据，缓存文件使用PHP的die();函数以便保证内容安全，
		$value = '<?php die();?>'.( time() + $life_time ).serialize($value); // 数据被序列化后保存
		return file_put_contents($sfile, $value);
	}elseif('c' == $method){
		// 清除数据，直接移除改缓存文件
		return @unlink($sfile);
	}else{
		// 读数据，检查文件是否可读，同时将去除缓存数据前部的内容以返回
		if( !is_readable($sfile) )return FALSE;
		$arg_data = file_get_contents($sfile);
		// 获取文件保存的$life_time，检查缓存是否过期
		if( substr($arg_data, 14, 10) < time() ){
			@unlink($sfile); // 过期则移除缓存文件，返回FALSE
			return FALSE;
		}
		return unserialize(substr($arg_data, 24)); // 数据反序列化后返回
	}
}
//http://blog.csdn.net/wuxiaopeng_1986/article/details/52956870
function delDir($directory){//自定义函数递归的函数整个目录  
    if(file_exists($directory)){//判断目录是否存在，如果不存在rmdir()函数会出错  
        if($dir_handle=@opendir($directory)){//打开目录返回目录资源，并判断是否成功  
            while($filename=readdir($dir_handle)){//遍历目录，读出目录中的文件或文件夹  
                if($filename!='.' && $filename!='..'){//一定要排除两个特殊的目录  
                    $subFile=$directory."/".$filename;//将目录下的文件与当前目录相连  
                    if(is_dir($subFile)){//如果是目录条件则成了  
                        delDir($subFile);//递归调用自己删除子目录  
                    }  
                    if(is_file($subFile)){//如果是文件条件则成立  
                        unlink($subFile);//直接删除这个文件  
                    }  
                }  
            }  
            closedir($dir_handle);//关闭目录资源  
            rmdir($directory);//删除空目录  
        }  
    }  
}  